package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_QUINCENA {

    private int ID_USUARIO;
    private Double PORCENTAJE;
    private Conexion con = null;

    public RHH_QUINCENA(Conexion con) {
        this.con = con;
    }

    public RHH_QUINCENA(int ID_USUARIO, Double PORCENTAJE) {
        this.ID_USUARIO = ID_USUARIO;
        this.PORCENTAJE = PORCENTAJE;
    }

    public boolean Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_QUINCENA (ID_USUARIO, PORCENTAJE) VALUES (" + ID_USUARIO + "," + PORCENTAJE + ")";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_QUINCENA where ID_USUARIO= " + getID_USUARIO();
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public boolean update(double porc) throws SQLException {
        String consulta = "update BROKER.RHH_QUINCENA set PORCENTAJE="+porc+" where ID_USUARIO= " + getID_USUARIO();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_QUINCENA> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_QUINCENA";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_QUINCENA> lista = Cargar(rs);
        return lista;
    }
    public List<RHH_QUINCENA> buscar(String txt) throws SQLException {
        String consulta = "SELECT RHH_QUINCENA.*\n" +
                        "  FROM BROKER.RHH_QUINCENA, BROKER.RHH_USUARIO, BROKER.RHH_PERSONA\n" +
                        " WHERE (RHH_QUINCENA.ID_USUARIO = RHH_USUARIO.ID)\n" +
                        "  AND (RHH_USUARIO.ID_PERSONA = RHH_PERSONA.ID)\n" +
                        "  AND (UPPER(RHH_PERSONA.PRIMER_NOMBRE||'  '||RHH_PERSONA.SEGUNDO_NOMBRE ||'  '||RHH_PERSONA.PRIMER_APELLIDO ||'  '||RHH_PERSONA.SEGUNDO_APELLIDO) LIKE UPPER('%"+txt+"%') \n" +
                        "  OR (UPPER(RHH_PERSONA.CI) LIKE UPPER('"+txt+"%')))";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_QUINCENA> lista = Cargar(rs);
        return lista;
    }
    public RHH_QUINCENA Buscar(int idusuario) throws SQLException {
        String consulta = "select * from BROKER.RHH_QUINCENA where ID_USUARIO="+idusuario;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_QUINCENA> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<RHH_QUINCENA> Cargar(ResultSet rs) throws SQLException {
        List<RHH_QUINCENA> lista = new ArrayList<RHH_QUINCENA>();
        while (rs.next()) {
            RHH_QUINCENA objeto = new RHH_QUINCENA(con);
            objeto.setID_USUARIO(rs.getInt("ID_USUARIO"));
            objeto.setPORCENTAJE(rs.getDouble("PORCENTAJE"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID_USUARIO() {
        return ID_USUARIO;
    }

    public void setID_USUARIO(int ID_USUARIO) {
        this.ID_USUARIO = ID_USUARIO;
    }

    public Double getPORCENTAJE() {
        return PORCENTAJE;
    }

    public void setPORCENTAJE(Double PORCENTAJE) {
        this.PORCENTAJE = PORCENTAJE;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
